<link rel="stylesheet" type="text/css" href="/res/third/ueditor/third-party/webuploader/webuploader.css">
<script type="text/javascript" src="/res/third/ueditor/third-party/webuploader/webuploader.js"></script>
<div id="${id!}" >
    <!--用来存放文件信息-->
    <div id="thelist" class="uploader-list" "></div>
    <div class="btns" style="padding: 10px;">
        <div id='${pickerid!"picker"}'>选择文件</div>
        <button id="ctlBtn" class="btn btn-default" style="padding: 10px;color: black;width: 86px;margin-top: 5px;">开始上传</button>
    </div>
</div>

<script>
	// 文件上传
	jQuery(function() {
	    var $ = jQuery,
	        $list = $('#thelist'),
	        $btn = $('#ctlBtn'),
	        state = 'pending',
	        uploader;

	    var extensions ="${extensions!}";
	    var fileNumLimit = [#if fileNumLimit??]${fileNumLimit}[#else]undefined[/#if];
	    var fileSizeLimit = 1024*1024*5;
	    uploader = WebUploader.create({

	        // 不压缩image
	        resize: false,

	        // swf文件路径
	        swf: '/res/third/ueditor/third-party/webuploader/Uploader.swf',

	        // 文件接收服务端。
	        server: '/res/third/ueditor/jsp/controller.jsp?action=uploadfile[#if userpath?? ]&userpath=${userpath!}[/#if]',

	        // 选择文件的按钮。可选。
	        // 内部根据当前运行是创建，可能是input元素，也可能是flash.
	        pick: {
	        	id:'#${pickerid!"picker"}',
	        	multiple:[#if multiple?? &&multiple ]true[#else]false[/#if]
	        },
	        fileNumLimit:fileNumLimit,
	        fileSizeLimit:fileSizeLimit,
			accept:{
			    extensions: extensions
			}
	    });

	    // 当有文件添加进来的时候
	    uploader.on( 'fileQueued', function( file ) {
	        $list.append( '<div id="' + file.id + '" class="item">' +
	            '<h4 class="info">' + file.name + '</h4>' +
	            '<p class="state">等待上传...</p>' +
	        '</div>' );
	    });

	    // 文件上传过程中创建进度条实时显示。
	    uploader.on( 'uploadProgress', function( file, percentage ) {
	        var $li = $( '#'+file.id ),
	            $percent = $li.find('.progress .progress-bar');

	        // 避免重复创建
	        if ( !$percent.length ) {
	            $percent = $('<div class="progress progress-striped active">' +
	              '<div class="progress-bar" role="progressbar" style="width: 0%">' +
	              '</div>' +
	            '</div>').appendTo( $li ).find('.progress-bar');
	        }

	        $li.find('p.state').text('上传中');

	        $percent.css( 'width', percentage * 100 + '%' );
	    });

	    uploader.on( 'uploadSuccess', function( file ,response) {
	        $( '#'+file.id ).find('p.state').text('已上传');
	        [#if callback?? ]
	 	       ${callback}(response[#if  params ?? ],${params}[/#if]);
	        [/#if ]
	    });

	    uploader.on( 'uploadError', function( file ) {
	        $( '#'+file.id ).find('p.state').text('上传出错');
	    });

	    uploader.on( 'uploadComplete', function( file ) {
	        $( '#'+file.id ).find('.progress').fadeOut();
	    });
	    uploader.on( 'error', function(errors ) {
	    	if(errors =="Q_EXCEED_NUM_LIMIT"){
	      		art.dialog.tips("最多选择:"+fileNumLimit+"个文件");
	    	}else if(errors=="Q_EXCEED_SIZE_LIMIT"){
	    		//限制大小
	    		art.dialog.tips("文件大小不能超过:"+fileSizeLimit/1024/1024+"M");
	    	}else if(errors =="Q_TYPE_DENIED"){
	    		art.dialog.tips("允许的类型:"+extensions);
	    	}
	      	
	    });

	    uploader.on( 'all', function( type ) {
	        if ( type === 'startUpload' ) {
	            state = 'uploading';
	        } else if ( type === 'stopUpload' ) {
	            state = 'paused';
	        } else if ( type === 'uploadFinished' ) {
	            state = 'done';
	        }

	        if ( state === 'uploading' ) {
	            $btn.text('暂停上传');
	        } else {
	            $btn.text('开始上传');
	        }
	    });

	    $btn.on( 'click', function() {
	        if ( state === 'uploading' ) {
	            uploader.stop();
	        } else {
	        	uploader.upload();
				return false;
	        }
	    });
	});


</script>